Skip to main content

System.d Services

C'est en créant des services que nous pouvons déployer des applications sur un serveur Linux :

  • Une application frontend statique aura généralement besoin d'un service HTTP pour servir les fichiers html/js/css.
  • Une application backend devra être lancée directement depuis un service systemd.
  • Une application frontend de type SSR (server side rendering) devra aussi être pilotée avec un service.
  • Un service permet de déployer à distance notre serveur (Runner local ou ssh).

Les services se trouvent dans (/etc/systemd/system/).

  • systemctl list-units ou > systemctl : Liste les unités systemd actuellement actives ou toutes les unités du système.
  • systemctl status apache2 : Affiche le statut du service Apache2, montrant s'il est en cours d'exécution, inactif, etc.
  • ss -nlpt : Affiche les ports en écoute sur le système.
  • systemctl reload/restart apache2 | "Restart" coupe et redémarre le service, tandis que "reload" permet au service de continuer à fonctionner sans interruption en rechargeant la configuration.

Nous avons créé un service qui peut être exécuté par l'utilisateur Student.

[Unit]
Description=Pinger une adresse IP locale
After=network.target

[Service]
Type=simple
User=student
ExecStart=/bin/ping -i 10 -c 5 192.168.1.1

[Install]
WantedBy=default.target
  • sudo systemctl daemon-reload :
    Cette commande permet de recharger le démon systemd pour appliquer les modifications effectuées dans les fichiers de configuration des unités, situés dans le répertoire /etc/systemd/system/.

  • sudo systemctl enable ping-service.service :
    Cette commande active le démarrage automatique du service de ping au démarrage du système. Ainsi, lorsque le système est redémarré ou si le service n'est pas actif pour une raison quelconque, cette commande garantit que le service est automatiquement lancé.

  • systemctl start ping-service.service :
    Cette commande démarre le service de ping. Après avoir activé le service avec la commande précédente, cette commande est utilisée pour démarrer effectivement le service.

  • grep -i user /etc/systemd/system/ping-service.service :
    Cette commande vérifie l'information sur l'utilisateur dans le fichier d'unité du service de ping. La réponse ne doit pas indiquer "root", car il est généralement recommandé que le service s'exécute sous un utilisateur spécifique.

  • ps -ef | grep -i ping : Cette commande vérifie l'information sur l'utilisateur dans le fichier d'unité du service de ping. La réponse ne doit pas indiquer "root", car il est généralement recommandé que le service s'exécute sous un utilisateur spécifique.

Création d'un service planifié dans system.d/system ;

ping.service :

[Unit]
Description=Service de Pinging

[Service]
ExecStart=/chemin/vers/votre/script.sh
#Restart=always

[Install]
WantedBy=multi-user.target

ping.timer :

[Unit]
Description=Minuteur de Pinging

[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
OnCalendar= Il existe différents formats pour la planification !!!!

[Install]
WantedBy=timers.target